"""
继承：
    概述：
        现实中的继承指的是：子承父业，编程中的继承指的是：子类从父类继承过来属性和方法（行为）
    格式：
        class 子类名(父类名):
            pass

    例如：
        class B(A):
            pass

    叫法：
        类B： 子类，派生类，扩展类
        类A： 父类，基类，超类

    好处：
        提高代码的复用性
    细节：
        所有的类直接或者间接继承自object，他是所有类的父类，基类。
"""
# 需求：定义一个人类，属性：姓名，年龄，行为：学习，同时定义一个老师类，一个学生类，需要继承自人类。
#1：定义人类
class Person(object):
    # __init__, 创建对象的时候调用
    def __init__(self, name, age):
        self.name = name
        self.age = age

    # 学习的方法（行为）
    def study(self):
        print(f"{self.name}活到老，学到老。。。")

    def __str__(self):
        return f"姓名：{self.name}, 年龄：{self.age}"

    def show(self):
        return f"姓名：{self.name}, 年龄：{self.age}"

# 定义老师类
class Teacher(Person):
    pass

# 定义学生类
class Student(Person):
    pass

if __name__ == '__main__':
    # 2：创建对象
    t1 = Teacher("张三", 28)
    s1 = Student("李四", 18)

    # 3：调用父类的方法
    t1.study()
    print("----------------------")
    s1.study()